/*#include<bits/stdc++.h>
using namespace std;
int camara[100005],cam[100005];
int car_d_v_a[4][100005];
int m,n,l,v;
int t,ans;
int main()
{
    freopen("detect1.in","r",stdin);
    freopen("detect1.out","w",stdout);
    cin>>t;
    for(int x=1;x<=t;x++)
    {
        cin>>n>>m>>l>>v;
        for(int i=1;i<=n;i++)
        cin>>car_d_v_a[1][i]>>car_d_v_a[2][i]>>car_d_v_a[3][i];
        for(int i=1;i<=m;i++)
        {
            cin>>camara[i];

        }
        for(int i=1;i<=n;i++)
        {
            if(car_d_v_a[3][i]<=0&&car_d_v_a[2][i]<=v)
            {
                continue;
            }
            else
            {
                if( sqrt( car_d_v_a[2][i] * car_d_v_a[2][i] + 2*car_d_v_a[3][i]*(camara[m]-car_d_v_a[1][i]) )<=v )
                {
                    continue;
                }
                for(int j=1;j<=m;j++)
                {
                    if(camara[j]<car_d_v_a[1][i])
                    {
                        continue;
                    }
                    if( (double)sqrt( car_d_v_a[2][i] * car_d_v_a[2][i] + 2*car_d_v_a[3][i]*(camara[j]-car_d_v_a[1][i]) )>v ||(car_d_v_a[3][i]<=0&&car_d_v_a[2][i]>(double)v))
                    {
                        car_d_v_a[0][i]=1;
                        cam[j]=1;
                        break;
                    }

                }

            }
        }
        for(int i=1;i<=n;i++)
            if(car_d_v_a[0][i]==1)
                ans++;
        cout<<ans;
        ans=0;
        for(int i=1;i<=m;i++)
        {
            if(cam[i]==1)
                ans++;
        }
        cout<<" "<<m-ans<<endl;
        //huifu
        for(int i=1;i<=n;i++)
            car_d_v_a[0][i]=0;

        for(int i=1;i<=m;i++) cam[i]=0;
        ans=0;
    }
    return 0;
}*/
#include<bits/stdc++.h>
using namespace std;
int camara[100005];
int car_d_v_a[4][100005];
int m,n,l,v;
int t,ans;
int main()
{
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    cin>>t;
    for(int x=1;x<=t;x++,ans=0)
    {
        cin>>n>>m>>l>>v;
        for(int i=1;i<=n;i++)
        {
        cin>>car_d_v_a[1][i]>>car_d_v_a[2][i]>>car_d_v_a[3][i];
        }

        for(int i=1;i<=m;i++)
        {
            cin>>camara[i];
        }
        for(int i=1;i<=n;i++)
        {
            if(car_d_v_a[2][i]>v&&car_d_v_a[1][i]<=camara[m])
                ans++;
        }
        if(ans!=0)
        cout<<ans<<" "<<m-1<<endl;
        else
        cout<<ans<<" "<<m<<endl;
        ans=0;
    }
    return 0;
}
